package co.edu.uniandes.truequeAndes.servlets;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import co.edu.uniandes.truequeAndes.dao.ConsultaDAO;
import co.edu.uniandes.truequeAndes.fachada.TruequeAndes;
import co.edu.uniandes.truequeAndes.vos.Cliente;
import co.edu.uniandes.truequeAndes.vos.ValueInt;
import co.edu.uniandes.truequeAndes.vos.ValueRF23;
import co.edu.uniandes.truequeAndes.vos.ValuesOfertasDeCliente;

public class ServletVerProductosOferta extends ServletTemplate{

	@Override
	public String darImagenTitulo(HttpServletRequest request) {
		// TODO Auto-generated method stub
		return "uniandes.png";
	}

	@Override
	public String darTituloPagina(HttpServletRequest request) {
		// TODO Auto-generated method stub
		return "panel busquedas";
	}

	@Override
	public void escribirContenido(HttpServletRequest request,
			HttpServletResponse response) throws IOException, Exception {
		long numeroiini=System.nanoTime();
		TruequeAndes t= TruequeAndes.darInstancia();
    	ConsultaDAO dao= t.dao;
    	dao.inicializar();
    	PrintWriter escritor=response.getWriter();
    	Cliente obtenido=(Cliente)request.getSession().getAttribute("cliente");
		System.out.println(obtenido);
    	request.getSession().setAttribute("cliente", obtenido);
    	//Realizar consulta para poder imprimir!!!
    	ArrayList consulta=t.darOfertasDeCliente(obtenido.darEmail());
    	if(consulta.size()==0)
    	{
    		//repersistencia del cliente a traves de los servlets!
    		
    	
    		
    		escritor.println("<table width=\"100%\" align=\"center\"><tr><td align=\"center\">Lo sentimos, pero usted no tiene ninguna oferta en el momento</td></tr>");
    		
        	escritor.println("<tr><td align=\"center\"><form method=\"POST\" action=\"ServletLogin.htm\"><input type=\"submit\" name=\"regresar\" value=\"Regresar\"/></form></td></tr></table>");
        	
        	
        		
    	}
    	else
    	{
    		//REPERSISTENCIA DEL CLIENTE COMO TAL
    		
    		
    		//se deben imprimir todos los productos de esta vaina!
    	
        	escritor.println("<form method=\"POST\" action=\"ServletVerDatos.htm\"><table width=\"100%\" align=\"center\">");
        	escritor.println("<tr><td align=\"center\" > <font size=\"24\"> SELECCIONE UNO DE LOS SIGUIENTES : </font></td></tr></table>");
           	escritor.println("<table align=\"center\" width=\"100%\">");
        	
           	for (int i = 0; i < consulta.size(); i++) {
           		
           		ValuesOfertasDeCliente algo=(ValuesOfertasDeCliente)consulta.get(i);
           		ValueInt idrelacionado=t.darIdPaqueteDeOferta(algo.getIdOferta());
           		ArrayList temporal1=t.darProductosOfertadosEnPaquete("" + idrelacionado.getNumero());
           		String gg="";
           		for (int j = 0; j <temporal1.size(); j++)
           		{	ValueRF23 objeto1=(ValueRF23)temporal1.get(j);
					gg=gg+ objeto1.getNombreProducto() +" y se vende a " + objeto1.getValorComercial() +";";
				}
           		ArrayList productos=t.darProductosDemandadosEnPaquete("" + idrelacionado.getNumero());
           		String gg2="";
           		for (int j = 0; j < productos.size(); j++)
           		{
					ValueRF23 objeto2=(ValueRF23)productos.get(i);
					gg2=gg2 + objeto2.getNombreProducto() + " y se vende a " + objeto2.getValorComercial() + ";";
				}
           		escritor.println("<tr><td align=\"right\" width=\"50%\"><input type=\"radio\" name=\"idseleccionar\" value=\"" + algo.getIdOferta() +" \"/></td><td align=\"left\" width=\"50%\">Oferta: " + gg +  "       Demanda:" + gg2 +  "</td></tr>");
            	
            	
			}
           	
           	escritor.println("</table>");
        	escritor.println("<table width=\"100%\" align=\"center\">");
        	escritor.println("<tr><td align=\"center\"><input type=\"submit\" name=\"ver\" value=\"Ver Oferta\"/></td></tr></table></form>");
        	
        	long numerofini=System.nanoTime();
        	numerofini=numerofini-numeroiini;
        	
        	escritor.println("<table width=\"100\" align=\"center\">");
        	escritor.println("<tr><td align=\"center\">  " + numerofini + " en nanosegundos</td></tr></table>");
    	}
    	
    	
		
	}

}
